Processor vendors sell manufactured processor chips to their customers. Each processor chip contains a processor core that executes the processor's base instruction set and various support circuitries such as cache memory and DMA controller to increase the execution speed of the processor instructions.
These processor chips are fixed in design which cannot be changed by any customer. By contrast, there are processor design vendors such as Tensilica Inc. of Santa Clara, Calif. which license processor designs that are customizable by customers prior to being manufactured as chips. Such processor design vendors receive a royalty payment from its licensed customers for every chip manufactured which incorporates the licensed customized processor design.
The customizable features include such things as DMA controller, floating point unit, cache memory type and size, power saving circuits and interfaces to external circuits. In some cases, even such features as special registers and processor instructions can be changed or added to the design.
Once the customized design is finalized and verified, the processor design vendor generates a processor design file such as an RTL (register transfer level) file that contains all of the necessary instructions to manufacture the processor core and other circuits that have been customized into a processor chip. The vendor also generates all of the support software including a compiler, assembler, disassembler, ISS (instruction set simulator) and the associated user manuals.
Referring to FIG. 1, the RTL file and the associated support software are provided to customers A and B under a license from the processor design vendor. While the RTL file may contain the same processor core for both customers, they may be different in their customized features. Each customer can then combine the customized processor design with other circuit designs (e.g., application specific logic) to further customize the design. The combined design is made into processor chips to be incorporated into a final product to be sold to the ultimate customers. For example, Customer A can be a DVD player manufacturer and the processor design licensed from the processor design vendor is incorporated into a chip to be finally assembled into DVD players. Other typical customers of customized processor chips may include manufacturers of computer printers, MP3 players, CD players, smart phones, video game players, personal digital assistants, personal computers, portable Internet devices such as netbooks, home theater receivers, digital televisions, ASIC controllers and the like.
Often, the processor design vendor and its customers may be interested in packaging useful application programs so that they may be provided in the ultimate product to be sold to the end users or customers. For example, customer A may be interested in offering a decoder program for decoding digitally encoded multimedia audio files in DTS (Digital Theater System) or Dolby format. This enables a user of the DVD player to listen to digitally encoded audio. Another example is an encoder that encodes the multimedia files.
As shown in FIG. 1, the processor design vendor under a license agreement with an application program vendor, e.g., DTS, Inc. of Agoura Hills, Calif., receives the application program in a source file format (such as C source file), optimizes the code for its processor core, and then supplies the optimized code typically in an object code format to the processor customers (e.g., customers A and B).
Although arrangements can vary, a processor design customer typically signs a license agreement with both the processor design vendor and the application program vendor. Like the processor design vendor, the application program vendor typically receives a royalty payment every time a processor chip packaged with the application program is made or sold.
However, there is a concern that the optimized application program provided to customer A, who has been licensed by the application program vendor, may fall into the hands of customer B who is not licensed by the same vendor. For example, a former employee of customer A who has a copy of the application program may start to work for customer B. It is possible that customer B may unethically decide to offer the application program without a license from the application program vendor even though the processor chip itself has been licensed by the processor design vendor. Since the processor core is the same for both customers, the application program will directly run properly on the hardware without any emulation software. In that case, the application program vendor would be unable to collect any royalty payment for chips that are sold by customer B.
To minimize this, the application program vendor attempts to test every type of processor chips that are being sold into the marketplace to ensure that all of the customers selling the licensed processor chips with the application program are in full compliance with royalty payments. For the application program vendor, this is very time consuming and expensive. It may even be impractical as there may be tens of thousands of chip types that are based on the licensed processor design which may be incorporated into final products that may be difficult to take apart and analyze.
Therefore, it would be desirable to provide a system and method for preventing an application program from being executed properly in any processor chip without a license from the application program vendor.